/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package clases;

import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.*;
import java.math.BigDecimal;
import java.io.*;
import java.util.LinkedList;
import java.util.List;
import org.jfree.data.category.DefaultCategoryDataset;
import org.jfree.data.general.DefaultPieDataset;

/**
 *
 * @author ad
 */
public class Grafica {
// Create a simple Bar chart
    DefaultCategoryDataset dataset = new DefaultCategoryDataset();
    DefaultPieDataset pieDataset = new DefaultPieDataset();
    Conexion micone = new Conexion();

    public boolean dibujarbarras(String Nombre) {
        
        LinkedList mi = new LinkedList();
        BigDecimal real = null;
        BigDecimal disponible = null;
        BigDecimal reserva = null;

        micone.grafica_consultasaldos(mi);

        

            Object[] ma0 = (Object[]) mi.remove(0);
            if (ma0 != null) {

                if(ma0[0]!=null){
                 real = (BigDecimal) ma0[0];
                }
                else{
                real = java.math.BigDecimal.valueOf(0, 0);
                }
                            if(ma0[1]!=null){
                 disponible = (BigDecimal) ma0[1];
                }
                else{
                disponible = java.math.BigDecimal.valueOf(0, 0);
                }
                            if(ma0[2]!=null){
                reserva = (BigDecimal) ma0[2];
                }
                else{
                reserva = java.math.BigDecimal.valueOf(0, 0);
                }
            

            

        } else {

            real = java.math.BigDecimal.valueOf(0, 0);
            disponible = java.math.BigDecimal.valueOf(0, 0);
            reserva = java.math.BigDecimal.valueOf(0, 0);
        }






        boolean retona = false;
        dataset.setValue(real.doubleValue(), "Compras", "Real");
        dataset.setValue(disponible.doubleValue(), "Compras", "Disponible");
        dataset.setValue(reserva.doubleValue(), "Compras", "Reserva");
        JFreeChart chart = ChartFactory.createBarChart("Grafica Saldos", "Estado", "Saldos", dataset, PlotOrientation.VERTICAL, false, true, false);
        try {

            ChartUtilities.saveChartAsJPEG(new File("C:/Program Files/Apache Software Foundation/Apache Tomcat 6.0.26/bin/imagenes/" + Nombre + ".jpg"), chart, 500, 300);

            retona = true;
        } catch (IOException e) {
            System.err.println("Error creando grafico." + e.getMessage());
        }

        return retona;
    }

    public boolean dibujarPay(String id_sucursal) {
        LinkedList mi = new LinkedList();
        BigDecimal monetario=null;
        BigDecimal pagocheque=null;
        BigDecimal chequepropio=null;
        BigDecimal transferenciafondos=null;

        micone.set_grafica_saldo_monetario(mi,id_sucursal);
        
            Object ma0 = (Object) mi.remove(0);
        if (ma0 != null) {
            monetario = (BigDecimal) ma0;
        }
        else{
            monetario = java.math.BigDecimal.valueOf(0, 0);
        }
        micone.set_grafica_saldo_pagocheque(mi,id_sucursal);
         
            Object ma1 = (Object) mi.remove(0);
            if (ma1 != null) {
            pagocheque = (BigDecimal) ma1;
        }
        else{
            pagocheque = java.math.BigDecimal.valueOf(0, 0);
        }
        micone.set_grafica_saldo_chequepropio(mi,id_sucursal);
        
            Object ma2 = (Object) mi.remove(0);
             if (ma2 != null) {
            chequepropio = (BigDecimal) ma2;
        }
        else{
            chequepropio = java.math.BigDecimal.valueOf(0, 0);
        }
        micone.set_grafica_saldo_transferenciafondos(mi,id_sucursal);
         
            Object ma3 = (Object) mi.remove(0);
            if (ma3 != null) {
            transferenciafondos = (BigDecimal) ma3;
        }
        else{
            transferenciafondos = java.math.BigDecimal.valueOf(0, 0);
        }


        boolean retorna = false;
        
        pieDataset.setValue("monetario",monetario.doubleValue());
        pieDataset.setValue("pago cheque",pagocheque.doubleValue());
        pieDataset.setValue("chequepropio",pagocheque.doubleValue());
        pieDataset.setValue("transferencias",transferenciafondos.doubleValue());
        JFreeChart chart = ChartFactory.createPieChart("Saldos Agencia ID " + id_sucursal + "", pieDataset, true, true, false);
        try {

            ChartUtilities.saveChartAsJPEG(new File("C:\\Program Files\\Apache Software Foundation\\Apache Tomcat 6.0.26\\bin\\imagenes\\pay_" + id_sucursal + ".jpg"), chart, 500, 300);

//ChartUtilities.saveChartAsJPEG(new File("C:\\Users\\GOPEZ\\Desktop\\Nueva carpeta\\web\\images\\pay.jpg"), chart, 500,300);
            retorna = true;
        } catch (Exception e) {
            System.out.println("Error creando grafico." + e.getMessage());
        }



        return retorna;
    }
}
